package com.huarui.employee.dao;

import java.util.List;
import java.util.Map;

import org.ewaf.framework.dao.IBaseDao;

import com.huarui.employee.model.Employee;

public interface IEmployeeDao extends IBaseDao {

	// void createStaff(int userId,int companyId);

	/**
	 * 通过名字得到员工列表
	 * 
	 * @param name
	 * @return
	 */
	List<Employee> getByName(String name);

	/**
	 * 更新员工角色
	 * 
	 * @param id
	 * @param incumbent
	 * @return
	 */
	boolean updateStatus(Integer id, boolean incumbent);

	/**
	 * 
	 * @param id
	 * @param roles
	 * @return
	 */
	boolean updateStaffRoles(Integer id, int roles);

	/**
	 * 得到所有员工
	 * 
	 * @return
	 */
	List<Employee> getAllStaffs();

	/**
	 * 通过拼音得到所有员工列表
	 * 
	 * @param pyCode
	 * @return
	 */
	List<Employee> getByPyCode(String pyCode);

	/**
	 * 通过工作号得到员工
	 * 
	 * @param code
	 * @return
	 */
	Employee getByCode(String code);

	/**
	 * 通过用户id等待员工
	 * 
	 * @param id
	 * @return
	 */
	Employee getEmployeeByUserId(Integer userId, Integer companyId,Integer isDelete);

	/**
	 * 
	 * @param companyId
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List<Employee> getEmployeeByCompanyId(Map map);

	/**
	 * 
	 * @param id
	 * @param varGroup
	 * @return
	 */

	Employee getJoinDictionary(Integer id, String varGroup);

	/**
	 * 根据公司和显示状态确定记录数
	 */

	int countByConditions(Map map);

	/**
	 * 根据员工ID和公司Id获取员工名字
	 */

	String getNameByIdAndCompanyId(Integer id, Integer companyId);
	
	
	@SuppressWarnings("unchecked")
	List<Map> getListBycondition(Map map);
	
	@SuppressWarnings("unchecked")
	public Integer getCountByCondition(Map map);
	
	public  Employee getEmployeeByCodeAndCompanyId(Map map);
	
	public  Employee getEmployeeForUpdate(Integer id);
}
